#pragma once

#include <iostream>

class DrawAPI
{
public:
    DrawAPI()          = default;
    virtual ~DrawAPI() = default;

public:
    virtual void drawCircle(int radius, int x, int y) = 0;
};

class RedCircle : public DrawAPI
{
public:
    void drawCircle(int radius, int x, int y)
    {
        std::cout << "draw red circle, radius: " << radius << ", x: " << x << ", y: " << y << std::endl;
    }
};

class GreenCircle : public DrawAPI
{
public:
    void drawCircle(int radius, int x, int y)
    {
        std::cout << "draw green circle, radius: " << radius << ", x: " << x << ", y: " << y << std::endl;
    }
};
